package com.yuandian.customer.perception.service;

import com.yuandian.api.customer_perception.po.OperatorResolutionParams;
import com.yuandian.api.customer_perception.vo.OperatorResolutionListVo;
import com.yuandian.api.customer_perception.vo.OperatorStatisticsListVo;
import com.yuandian.bpm.common.core.util.R;

import java.util.List;

/**
 * <p> 操作员分析 service接口 </p>
 *
 * @Author: LinSheHi
 * @Date: 2021/8/16 10:03
 */
public interface IOperatorResolutionService {

    /**
     * 业务办理列表
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessProcessList(OperatorResolutionParams params);

    /**
     * 业务办理列表下载
     * @param params 请求参数
     * @return 通用返回对象
     */
    List<OperatorResolutionListVo> queryBusinessProcessListExport(OperatorResolutionParams params);

    /**
     * 业务办理详情列表
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessProcessStatisticsList(OperatorResolutionParams params);


    /**
     * 业务办理列表下载
     * @param params 请求参数
     * @return 通用返回对象
     */
    List<OperatorStatisticsListVo> queryBusinessProcessStatisticsListExport(OperatorResolutionParams params);

    /**
     * 业务办理明细列表
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessProcessDetailList(OperatorResolutionParams params);

    /**
     * 操作员业务办理量
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorBusinessProcessCount(OperatorResolutionParams params);

    /**
     * 操作员人工操作平均耗时
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorAvgDealTime(OperatorResolutionParams params);

    /**
     * 操作员办理业务占比
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorBusinessPercent(OperatorResolutionParams params);

    /**
     * 操作员办理业务告警类型
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorAlarmTypeCount(OperatorResolutionParams params);

    /**
     * 操作员办理业务平均耗时
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorBusinessAvgVisitTime(OperatorResolutionParams params);

    /**
     * 操作员办理X业务趋势图
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorBusinessLine(OperatorResolutionParams params);


    /**
     * 根据查询条件查询某业务员操作过的所有系统
     *
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> querySystemListByOperator(OperatorResolutionParams params);

    /**
     * 根据查询条件查询某业务员操作过的所有业务
     *
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessListByOperator(OperatorResolutionParams params);

}
